use tonic::transport::Channel;
use utils::rpc::RpcClientManager;
use std::sync::Arc;

// 暂时注释掉，等待protobuf生成
// use crate::rpc::pb::dict::dict_service_client::DictServiceClient;

/// Infra RPC 客户端管理器
#[derive(Clone)]
pub struct InfraRpcClient {
    /// RPC 客户端管理器
    client_manager: Arc<RpcClientManager>,
}

impl InfraRpcClient {
    /// 创建新的 Infra RPC 客户端
    pub fn new(client_manager: Arc<RpcClientManager>) -> Self {
        Self { client_manager }
    }

    /// 获取字典服务客户端
    pub async fn dict_client(&self) -> Result<Channel, utils::rpc::RpcError> {
        self.client_manager.get_connection("dict").await
    }

    /// 获取通知服务客户端（待实现）
    pub async fn notification_client(&self) -> Result<Channel, utils::rpc::RpcError> {
        self.client_manager.get_connection("notice").await
    }

    /// 获取文件服务客户端（待实现）
    pub async fn file_client(&self) -> Result<Channel, utils::rpc::RpcError> {
        self.client_manager.get_connection("file").await
    }
} 